

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
        
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>A Climate Model of White Christmases—Through 2100 - CityLab</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!-- Icons -->
        <link rel="shortcut icon" href="http://cdn.citylab.com/static/citylab/img/icons/favicon.ico">
        <link rel="apple-touch-icon" href="http://cdn.citylab.com/static/citylab/img/icons/touch-icon-iphone.png">
        <link rel="apple-touch-icon" sizes="76x76" href="http://cdn.citylab.com/static/citylab/img/icons/touch-icon-ipad.png">
        <link rel="apple-touch-icon" sizes="120x120" href="http://cdn.citylab.com/static/citylab/img/icons/touch-icon-iphone-retina.png">
        <link rel="apple-touch-icon" sizes="152x152" href="http://cdn.citylab.com/static/citylab/img/icons/touch-icon-ipad-retina.png">

        <meta name="application-name" content="CityLab">
        <meta name="msapplication-TileColor" content="#000000">
        <meta name="msapplication-TileImage" content="http://cdn.citylab.com/static/citylab/img/icons/tile-144.png">

        <!-- Meta -->
        <meta property="fb:page_id" content="236061986423933" />
        <link href="https://plus.google.com/+citylab/" rel="publisher" />

        <link rel="alternate" type="application/rss+xml" title="CityLab RSS" href="http://feeds.feedburner.com/TheAtlanticCities" />

    
        <link rel="canonical" href="http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/" />
    
        <link rel="image_src" href="http://cdn.citylab.com/media/img/citylab/2014/11/white_christmas_in_america_probability_prediction_global_warming_climate_change_hed/lead_large.jpg">
        <meta name="description" content="One man makes a knowingly futile attempt at predicting snow for decades down the line." />

        <meta property="og:description" content="One man makes a knowingly futile attempt at predicting snow for decades down the line.">
        <meta property="og:image" content="http://cdn.citylab.com/media/img/citylab/2014/11/white_christmas_in_america_probability_prediction_global_warming_climate_change_hed/lead_large.jpg">
        <meta property="og:locale" content="en_US">
        <meta property="og:site_name" content="CityLab">
        <meta property="og:title" content="A Climate Model of White Christmases—Through 2100">
        <meta property="og:type" content="article">
        <meta property="og:url" content="http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/" />

        
            
        <meta name="ROBOTS" content="INDEX, FOLLOW">
            
        

        
    
        <meta name="twitter:card" content="summary">
        <meta name="twitter:site" content="@CityLab">
        
            
            <meta name="twitter:creator" content="@citycalfe" />
            
            
            <link rel="author" href="https://plus.google.com/u/0/103701950766858439910/posts">
            
        <meta name="twitter:title" content="A Climate Model of White Christmases—Through 2100">
        <meta name="twitter:description" content="One man makes a knowingly futile attempt at predicting snow for decades down the line.">
        <meta name="twitter:image" content="http://cdn.citylab.com/media/img/citylab/2014/11/white_christmas_in_america_probability_prediction_global_warming_climate_change_hed/lead_large.jpg">

        

        
            
        
    
    <meta property="article:publisher" content="https://www.facebook.com/thisiscitylab" />


        <!-- Header Analytics -->
        
        
        <meta name='parsely-page' content='{"title": "A Climate Model of White Christmases\u2014Through 2100", "type": "post", "section": "weather", "author": "John Metcalfe", "post_id": 383143, "link": "http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", "pub_date": "2014-11-25T08:27:49Z"}'>


        <!-- Chartbeat -->
        <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
        

        <!-- Header CSS -->
        <link rel="stylesheet" href="http://cdn.citylab.com/static/CACHE/css/9e9aad8d1702.css" type="text/css" />

        <link rel="stylesheet" href="http://cdn.citylab.com/static/CACHE/css/9bff9a6e8609.css" type="text/css" />

        <!-- Header Javascript -->
        <script>
            var Atlantic = {};
            Atlantic.page_info = {
  "tall_ads_suppressed": false, 
  "domain": "www.citylab.com", 
  "image": "http://cdn.citylab.com/media/img/citylab/2014/11/white_christmas_in_america_probability_prediction_global_warming_climate_change_hed/lead_large.jpg", 
  "channels": [
    "weather"
  ], 
  "report": "", 
  "canonical_url": "http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", 
  "original_url": "http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", 
  "seo_title": "", 
  "site_url": "http://www.citylab.com", 
  "regions": [], 
  "primary_channel": "weather", 
  "share_title": "", 
  "share_dek": "", 
  "description": "One man makes a knowingly futile attempt at predicting snow for decades down the line.", 
  "tags": [], 
  "is_404": false, 
  "has_full_width_content": false, 
  "extra_omniture_params": {}, 
  "kicker": "maps", 
  "authors": [
    "John Metcalfe"
  ], 
  "date": "2014-11-25T08:27:49", 
  "path": "/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", 
  "cities": [], 
  "countries": [], 
  "url": "http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", 
  "title": "A Climate Model of White Christmases\u2014Through 2100", 
  "view": "article"
};

            // Used for comment counts
            var disqus_shortname = 'theatlanticcities';
            var s_account = "atlanticcities-prod";
        </script>

        <script type="text/javascript" src="http://cdn.citylab.com/static/CACHE/js/523555197d1e.js"></script>

        
            <script type="text/javascript">
// Set all mandatory properties that don't change.
s.account = "atlanticcities-prod";
s.charSet="UTF-8";
s.currencyCode="USD";
s.trackDownloadLinks=true;
s.trackExternalLinks=true;
s.trackInlineStats=true;
s.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls";
s.linkInternalFilters="javascript:,thewire.com,citylab.com,theatlantic.com,localhost";
s.linkLeaveQueryString=false;
s.linkTrackVars="None";
s.linkTrackEvents="None";
s.visitorNamespace="atlanticmedia";
s.trackingServer="atlanticmedia.122.2o7.net";

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code = s.t();
if (s_code) document.write(s_code)
if (navigator.appVersion.indexOf('MSIE') >= 0) document.write(unescape('%3C') + '\!-' + '-');
</script>
<noscript><img src="http://atlanticmedia.122.2o7.net/b/ss/atlanticcities-prod/1/H.23.6--NS/0"
height="1" width="1" border="0" alt="" /></noscript><!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.23.6. -->

        

        <script type="text/javascript" src="http://cdn.citylab.com/static/CACHE/js/ba2b9ecb9901.js"></script>

        
    </head>
    <body id="article-page">
        


<header id="site-header">
    <div class="ad-wrapper">
        <div class="ad" id="ad-topleader">
            
<noscript>
    <div>
        <a href="http://pubads.g.doubleclick.net/gampad/jump?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dtopleader&amp;sz=320x50|728x90|970x66|970x250&amp;c=857697270&amp;tile=1" title="">
            <img src="http://pubads.g.doubleclick.net/gampad/ad?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dtopleader&amp;sz=320x50|728x90|970x66|970x250&amp;c=857697270&amp;tile=1" alt="" />
        </a>
    </div>
</noscript>


        </div>
    </div>
    <div class="fluid-container">
        <div id="main-header-wrapper">
            <div id="site-logo">
                From <i>The Atlantic</i>
                <a href="/" data-omni-click="r'logo'">
                    <h1>CityLab</h1>
                </a>
            </div>
        </div>

        <div id="main-nav-wrapper">
            <a href="#" class="toggle-nav" onclick='$("#main-nav-wrapper").toggleClass("active"); return false;' data-omni-click="r'nav',r'menu',l.pathname">Menu</a>
            <nav class="main-nav" data-omni-click="r'nav',t">
                <ul class="channel-nav">
                    <li><a href="/commute/" data-omni-click="inherit">Commute</a></li>
                    <li><a href="/work/" data-omni-click="inherit">Work</a></li>
                    <li><a href="/housing/" data-omni-click="inherit">Housing</a></li>
                    <li><a href="/weather/" data-omni-click="inherit">Weather</a></li>
                    <li><a href="/crime/" data-omni-click="inherit">Crime</a></li>
                    <li><a href="/politics/" data-omni-click="inherit">Politics</a></li>
                    <li><a href="/design/" data-omni-click="inherit">Design</a></li>
                    <li><a href="/tech/" data-omni-click="inherit">Tech</a></li>
                </ul>
                <div class="secondary-nav-wrapper">
                    <ul class="secondary-nav">
                        <li><a href="/navigator/" data-omni-click="inherit">Navigator</a></li>
                        <li><a href="/cityfixer/" data-omni-click="inherit">CityFixer</a></li>
                        <li><a href="/posts/maps/" data-omni-click="inherit">Maps</a></li>
                        <li><a href="/posts/photos/" data-omni-click="inherit">Photos</a></li>
                        <li><a href="/posts/videos/" data-omni-click="inherit">Videos</a></li>
                        <li class="search"><a href="/search/" data-omni-click="inherit">Search</a></li>
                        <li class="social">
                            <ul>
                                <li><a href="https://www.facebook.com/thisiscitylab" class="social-icon facebook" data-omni-click="r'nav',r'facebook'"></a></li>
                                <li><a href="https://twitter.com/intent/user?screen_name=CityLab" class="social-icon twitter" data-omni-click="r'nav',r'twitter'"></a></li>
                                <li><a href="https://www.linkedin.com/company/citylab-com" class="social-icon linkedin" data-omni-click="r'nav',r'linkedin'"></a></li>
                                <li><a href="http://feeds.feedburner.com/TheAtlanticCities" class="social-icon rss" data-omni-click="r'nav',r'rss'"></a></li>
                            </ul>
                        </li>
                    </ul>
                </div>
                <form class="search-box" action="/search/" method="GET">
                    <input type="text" name="q" placeholder="search">
                    <button type="submit"></button>
                </form>
            </nav>
        </div>
    </div>
</header>


        
        <div class="fluid-container" id="main-container">
            

<script type="text/javascript">
    var disqus_identifier = "post_383143";
    var disqus_title = "A Climate Model of White Christmases—Through 2100";
</script>


<div id="article-rail" class="rail hide">
    <div id="ad-boxtop" class="ad">
    </div>
</div>
<article id="article">
    
    <a href="/posts/maps/" class="kicker" data-omni-click="r'articlekicker',r'',@href">Maps</a>
    
    <h1 class="hed">A Climate Model of White Christmases—Through 2100</h1>
    <p class="dek">One man makes a knowingly futile attempt at predicting snow for decades down the line.</p>

    <ul class="metadata">
        <li class="byline" data-omni-click="r'articleauthor',r'0',@href"><a href="/authors/john-metcalfe/" title="John Metcalfe" data-omni-click="inherit">John Metcalfe</a></li>
        
        
        
        <li class="twitter"><a href="https://twitter.com/intent/user?screen_name=citycalfe">@citycalfe</a></li>
        
        
        

        <li class="date-published"><time datetime="2014-11-25T08:27:49">Nov 25, 2014</time></li>
        <li class="comments"><a href="#disqus_thread" data-disqus-identifier="post_383143" data-disqus-format="{} Comments" data-disqus-format-singular="{} Comment" data-omni-click="r'articlecomment',r'0',l.pathname">Comments</a></li>
    </ul>

    
<ul class="article-social-icons social-icons color">
    <li><span class="social-icon share-count"></span></li>
    <li><a href="#" class="social-icon facebook" data-share="facebook" data-omni-click="r'articlefb',r'0',l.pathname"><span>Share on Facebook</span></a></li>
    <li><a href="#" class="social-icon twitter" data-share="twitter" data-omni-click="r'articletweet',r'0',l.pathname"><span>Tweet</span></a></li>
    <li><a href="#" class="social-icon linkedin round" data-share="linkedin" data-omni-click="r'articleli',r'0',l.pathname"></a></li>
    <li><a href="mailto:?subject=A%20Climate%20Model%20of%20White%20Christmases%E2%80%94Through%202100&body=One%20man%20makes%20a%20knowingly%20futile%20attempt%20at%20predicting%20snow%20for%20decades%20down%20the%20line.%0A%0ARead more:%20http%3A//www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/" class="social-icon email round" data-omni-click="r'articleemail',r'0',l.pathname"></a></li>
    <li><a href="#" class="social-icon print round" data-share="print"></a></li>
</ul>


    







    <div id="article-body">
        <div><p>When warp-speed Santa drones are shooting Christmas presents down the air holes of our Disastro-Bunkers in 2089, will there be snow on the ground?</p>

<p>That's a ridiculous question to ask&#8212;and now it's been answered by David Taylor, a 44-year-old data scientist and writer in Montreal, who's made an <a href="http://www.prooffreader.com/2014/11/projections-of-white-christmases-until.html">animation of predicted white Christmases</a> for each remaining year of the century.</p>

<figure style="max-width: 620px;"><img alt="" src="http://cdn.theatlantic.com/assets/media/img/posts/2014/11/white_christmas_in_america_probability_prediction_global_warming_climate_change_hed/eeba06fa5.gif"></figure><p>Taylor is aware that, <span>by its nature, </span>this simulation includes many wild misses. Today, a snowstorm's exact movements are difficult to nail down three days in advance; guessing whether there will be powder in <span>six decades </span>on December 25 is harder than keeping Jim Cantore <a href="http://youtu.be/iJVqRYrkXWU?t=23s">silent during thundersnow</a>. The humor of this impossible task was part of what made Taylor want to attempt it.</p>

<p>"Basically, I was cruising around the Statistics Canada website looking for interesting data that hadn't already been mined out, and I came across this <a href="http://www.ec.gc.ca/ccmac-cccma/default.asp?lang=En">huge collection of climate models</a> going to the year 2100, containing day-by-day predictions of atmospheric conditions including temperature and precipitation," he emails. "I found that amusing because even the seven-day weather forecasts are so often way off. But of course the accuracy of day-by-day predictions aren't the point of the model, they're just the product of the model."</p>

<p>The model Taylor relied on, the CanRCM4, generated a few interesting trends over the century. The effects of climate change are obvious, with the snowpack receding evermore north like the white hairline of a balding Kris Kringle. Within this general pattern, though, are what Taylor calls "<span>mini-cycles of a few years of cooling, then a few years of warming." There are also a couple of mystery zones, where snow or barrenness stubbornly reign.</span></p>

<p>"There are... these persistent spots in and around Utah that are always snow-covered no matter what's going on in the rest of the continent, and there's this spot between Walla Walla and Spokane, Washington, that's always snow-free even though it's surrounded by snow," he says. "I'm just a data analyst and programmer, not a climatologist, but my first guess is that the Rocky Mountains have something to do with the fact that snow cover seems less variable in the West than the East." (It might also relate to how climate change is <a href="http://www.citylab.com/work/2014/04/america-could-get-more-and-more-super-freezing-winters/8901/">building a hot/cold divide</a> between America's coasts.)</p>

<p>So why did Taylor pick this treasured event for scrutiny? <span>Is his first holiday memory waking up to ivory drifts pressing against the window, signaling school cancellations stretching as far as the mind's eye could see?</span></p>

<p>Not really. "Well, the data is arranged day by day, so Christmas seemed the natural choice," he says. As for his own <span>weather </span>experiences, he's only seen one white Christmas in his life, way back in 1997.</p>

<p>"It's ironic because most of the rest of Canada had snow on the ground, but Edmonton, which is the large city the furthest north, was experiencing a Chinook (warm air from the Rockies) and didn't," he says. "In Edmonton, there's usually snow on the ground to stay by Halloween."</p></div>
    </div>

</article>
<div id="article-below">
<div class="content-column">

<ul class="article-social-icons social-icons color">
    <li><span class="social-icon share-count"></span></li>
    <li><a href="#" class="social-icon facebook" data-share="facebook" data-omni-click="r'articlefb',r'1',l.pathname"><span>Share on Facebook</span></a></li>
    <li><a href="#" class="social-icon twitter" data-share="twitter" data-omni-click="r'articletweet',r'1',l.pathname"><span>Tweet</span></a></li>
    <li><a href="#" class="social-icon linkedin round" data-share="linkedin" data-omni-click="r'articleli',r'1',l.pathname"></a></li>
    <li><a href="mailto:?subject=A%20Climate%20Model%20of%20White%20Christmases%E2%80%94Through%202100&body=One%20man%20makes%20a%20knowingly%20futile%20attempt%20at%20predicting%20snow%20for%20decades%20down%20the%20line.%0A%0ARead more:%20http%3A//www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/" class="social-icon email round" data-omni-click="r'articleemail',r'1',l.pathname"></a></li>
    <li><a href="#" class="social-icon print round" data-share="print"></a></li>
</ul>


    <div id="logo-container">
        <span class="sponsor-text">Presented by</span>
        <div class="ad" id="ad-logo" data-ad-starts-hidden="true">
            
<noscript>
    <div>
        <a href="http://pubads.g.doubleclick.net/gampad/jump?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dlogo&amp;sz=88x31|100x55|120x60&amp;c=857697270&amp;tile=0" title="">
            <img src="http://pubads.g.doubleclick.net/gampad/ad?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dlogo&amp;sz=88x31|100x55|120x60&amp;c=857697270&amp;tile=0" alt="" />
        </a>
    </div>
</noscript>


        </div>
    </div>

    <ul id="article-navigation">
        
        <li class="prev">
            <a href="/work/2014/11/a-new-magazine-helps-addicts-fund-their-addictionslegally/383140/" data-omni-click="r'articleprevious',r'',@href">
                <div class="article-nav-arrow">Previous</div>
                <div class="hed">A New Magazine Helps Addicts Fund Their Addictions—Legally</div>
            </a>
        </li>
        

        
        <li class="next">
            <a href="/design/2014/11/predict-your-date-of-death-with-this-gloomy-data-visualization/383141/" data-omni-click="r'articlenext',r'',@href">
                <div class="article-nav-arrow">Next</div>
                <div class="hed">Predict Your Date of Death With This Gloomy Data Visualization </div>
            </a>
        </li>
        
    </ul>
    <section id="taboola">
        <div id='taboola-bottom-main-column'></div>
<script type="text/javascript">
window._taboola = window._taboola || [];
_taboola.push({mode:'autosized-generated-1r', container:'taboola-bottom-main-column', placement:'Bottom Main Column'});
_taboola.push({article:'auto'});
</script>
<script type="text/javascript" src="http://cdn.taboolasyndication.com/libtrc/atlanticmedia-theatlanticcities/loader.js"></script>

    </section>

    <section class="module" id="article-authors">
        <h2>About the Author</h2>
        <ul class="authors" data-omni-click="r'articleauthors',r'1',@href">
            
            

<li class="author">
    
        
            <a href="/authors/john-metcalfe/" data-omni-click="inherit">
                <img src="http://cdn.citylab.com/media/img/authors/m/john-metcalfe/headshot/author-headshot.JPG?53640bf6"
     
     
     class="headshot"
     height="62" 
     width="59" 
/>


            </a>
        
    
    <div class="bio">
        
            John Metcalfe is a staff writer at CityLab.

            
        
    </div>

    <ul class="links">
        
        <li><a href="/authors/john-metcalfe/" class="all-posts" data-omni-click="inherit">All Posts</a></li>
        
        
        <li><a href="https://twitter.com/intent/user?screen_name=citycalfe" class="twitter">@citycalfe</a></li>
        
    </ul>
</li>


            
        </ul>
    </section>
</div>

<div class="rail">





<section id="most-popular" class="module">
    <h2 class="module-tag">Most Popular</h2>

    <ol>
        
        <li><a href="/design/2014/12/an-immersive-game-shows-how-easily-segregation-arisesand-how-we-might-fix-it/383586/">An Immersive Game Shows How Easily Segregation Arises—and How We Might Fix It</a></li>
        
        <li><a href="/work/2015/01/the-worlds-most-worker-friendly-countries-in-seven-charts/384154/">The World's Most Worker-Friendly Countries, in 7 Charts</a></li>
        
        <li><a href="/commute/2014/12/new-york-subway-platform-vending-machines-a-history/384127/">New York Subway Platform Vending Machines, a History</a></li>
        
        <li><a href="/design/2014/12/20-years-of-photos-show-just-how-boring-we-all-are/383781/">20 Years of Street Photography Shows Just How Boring We All Are</a></li>
        
        <li><a href="/work/2015/01/the-indian-banksy-asks-viewers-to-reconsider-the-democracy-of-art/384152/">The 'Indian Banksy' Asks Viewers to Reconsider the Democracy of Art</a></li>
        
        <li><a href="/design/2015/01/how-johannesburgs-most-neglected-buildings-ended-up-splashed-with-pink-paint/384173/">How Johannesburg's Most Neglected Buildings Ended Up Splashed With Pink Paint</a></li>
        
        <li><a href="/housing/2014/12/paris-wants-to-keep-central-neighborhoods-from-becoming-ghettos-for-the-rich/383936/">Paris Wants to Keep Central Neighborhoods From Becoming 'Ghettos for the Rich'</a></li>
        
        <li><a href="/commute/2014/12/scenes-from-the-back-seat-of-a-welsh-taxi/384027/">Scenes From the Back Seat of a Welsh Taxi </a></li>
        
        <li><a href="/commute/2014/12/why-sweden-has-the-worlds-safest-roads/384153/">Why Sweden Has the World's Safest Roads</a></li>
        
        <li><a href="/design/2015/01/indias-government-will-now-check-and-verify-the-use-of-toilets/384174/">India's Government Will Now 'Check and Verify the Use of Toilets'</a></li>
        
    </ol>

    <a href="/posts/" class="module-link">See All Stories</a>
</section>



</div>

<div class="content-column">
    

<div class="promo-grid-wrapper">
    <div class="promo-grid">

    
    <ol class="promo-item" id="promo-slot-1">
        
         <li>
            
                <h3 class="module-tag">CityFixer</h3>
            
            <a href="http://www.citylab.com/cityfixer" data-omni-click="r'articlepromo',r'0',@href">
                
                <img src="http://cdn.citylab.com/media/img/citylab/2014/05/promo_fixer_624x384-1/thumb.png" class="thumb">

                <h2 class="hed">Solutions for an Urbanizing World</h2>
                <span class="go">Go</span>
            </a>

            
                <div id="ad-article" data-ad-starts-hidden="true" class="triple-lift"></div>
            
        </li>
        
    </ol>
    
    <ol class="promo-item" id="promo-slot-2">
        
         <li>
            
                <h3 class="module-tag">Newsletters</h3>
            
            <a href="http://www.citylab.com/newsletters/" data-omni-click="r'articlepromo',r'1',@href">
                
                <img src="http://cdn.citylab.com/media/img/citylab/2014/05/promo_newsletters_623x384/thumb.jpg" class="thumb">

                <h2 class="hed">Don&#39;t Miss a Thing: Sign Up Here for Email Newsletters</h2>
                <span class="go">Go</span>
            </a>

            
                <div id="ad-article" data-ad-starts-hidden="true" class="triple-lift"></div>
            
        </li>
        
         <li>
            
                <h3 class="module-tag">Store</h3>
            
            <a href="http://www.zazzle.com/atlanticmedia/gifts?cg=196924976381926554" data-omni-click="r'articlepromo',r'1',@href">
                
                <img src="http://cdn.citylab.com/media/img/citylab/2014/06/promo_zazzle_promo_girlshirt/thumb.jpg" class="thumb">

                <h2 class="hed">T-Shirts, Mugs, and More</h2>
                <span class="go">Go</span>
            </a>

            
        </li>
        
    </ol>
    
    </div>
</div>

    <a href="#site-header" class="to-top">Back To Top</a>
</div>

<div class="bottomleader-ad-wrapper">
    <div class="ad" id="ad-bottomleader">
        
<noscript>
    <div>
        <a href="http://pubads.g.doubleclick.net/gampad/jump?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dbottomleader&amp;sz=728x90&amp;c=857697270&amp;tile=3" title="">
            <img src="http://pubads.g.doubleclick.net/gampad/ad?iu=%2F4624%2Fcities%2Fchannel_weather&amp;t=src%3Darticle%26pos%3Dbottomleader&amp;sz=728x90&amp;c=857697270&amp;tile=3" alt="" />
        </a>
    </div>
</noscript>


    </div>
</div>

</div>


<div id="article-comments">
    <div id="ad-boxright" class="rail ad">
    </div>
    <div id="disqus_thread" class="content-column">
    </div>
</div>


<ul id="social-sticky">
    <li class="small-logo-wrapper"><a href="/" class="small-logo" data-omni-click="r'persist',r'logo',l.pathname">CityLab</a></li>
    <li><a href="#" class="facebook-share" data-share="facebook" data-omni-click="r'persist',r'fb',l.pathname">Share</a></li>
    <li><a href="#" class="twitter-share" data-share="twitter" data-omni-click="r'persist',r'twitter',l.pathname">Tweet</a></li>
    <li class="menu-wrapper"><a href="#" class="menu" data-omni-click="r'persist',r'menu',l.pathname">Menu</a></li>
</ul>


        </div>
        

        



<footer id="site-footer">
    <div class="fluid-container">
        <section class="follow">
            <p>Through original reporting, sharp analysis, and visual
            storytelling, <i>CityLab</i> informs and inspires the people who are
            creating the cities of the future&mdash;and those who want to live
            there.</p>

            <h3>Follow</h3>
            <ul class="social-icons color round">
                <li><a href="https://www.facebook.com/thisiscitylab" class="social-icon facebook"></a></li>
                <li><a href="https://twitter.com/intent/user?screen_name=CityLab" class="social-icon twitter"></a></li>
                <li><a href="https://www.linkedin.com/company/citylab-com" class="social-icon linkedin"></a></li>
                <li><a href="http://feeds.feedburner.com/TheAtlanticCities" class="social-icon rss"></a></li>
            </ul>
            <div id="footer-newsletter-signup">
            <h3>Newsletter sign up</h3>
            <form id="footer-newsletter" action="http://theatlantic.us2.list-manage.com/subscribe/post?u=ed2d318978b7dc9b30b1f464f&amp;id=f2eeb0a9f3" method="POST">
                <input type="email" name="EMAIL">
                <input type="submit" value="Go">
                <fieldset>
                    <p>
                        <input type="checkbox" name="group[7045][1]" id="group[7045][1]" checked>
                        <label for="group[7045][1]">Today’s Top Stories</label>
                    </p>

                    <p>
                        <input type="checkbox" name="group[7045][4194304]" id="group[7045][4194304]" checked>
                        <label for="group[7045][4194304]">This Week’s Most Popular Stories</label>
                    </p>

                    <p>
                        <input type="checkbox" name="group[7421][8]" id="group[7421][8]" checked>
                        <label for="group[7421][8]">
                            I want to receive updates from partners and sponsors.
                        </label>
                    </p>
                </fieldset>
            </form>
            <p class="message"></p>
            </div>
        </section>
        <section class="about">
            <div class="footer-heading" onclick='javascript:$(this).parent().toggleClass("active");'><h2>More About CityLab</h2></div>
            <div class="footer-content">
                <ul>
                    <li><a href="/special-report/">Special Reports</a></li>
                    <li><a href="/faq/">FAQ</a></li>
                    <li><a href="/masthead/">Masthead</a></li>
                    <li><a href="/contact/">Contact Us</a></li>
                    <li><a href="http://www.theatlantic.com/store/">Store</a></li>
                    <li><a href="http://atlanticmedia.com/">Atlantic Media</a></li>
                    <li><a href="http://www.atlanticmedia.com/careers/">Jobs</a></li>
                    <li><a href="http://advertising.theatlantic.com/">Advertise</a></li>
                    <li><a href="http://cdn.theatlantic.com/static/front/docs/ads/TheAtlanticAdvertisingGuidelines.pdf">Advertising Guidelines</a></li>
                    <li><a href="/privacy-policy/">Privacy</a></li>
                    <li><a href="/terms-conditions/">Terms &amp; Conditions</a></li>
                </ul>
            </div>
        </section>
        <section class="elsewhere">
            <div class="footer-heading" onclick='javascript:$(this).parent().toggleClass("active");'><h2>Elsewhere at Atlantic Media</h2></div>
            <div class="footer-content">

                
                
                
                    
                    <div class="partner-row">
                    
                        <div class="partner the-atlantic">
                            <a href="http://theatlantic.com/"><h3>The Atlantic</h3></a>
                            <ul>
                            
                                <li><a href="http://www.theatlantic.com/international/archive/2015/01/why-would-anybody-adopt-the-euro-in-2015/384183/">Why Would Anybody Adopt the Euro in 2015?</a></li>
                            
                                <li><a href="http://www.theatlantic.com/entertainment/archive/2015/01/in-partial-defense-of-lee-greenwoods-grammatically-challenged-god-bless-the-usa/384178/">In Partial Defense of Lee Greenwood's Grammatically Challenged 'God Bless the U.S.A.'</a></li>
                            
                                <li><a href="http://www.theatlantic.com/international/archive/2015/01/human-traffickers-are-abandoning-boats-full-of-migrants/384177/">Human Traffickers Are Abandoning Boats Full of Migrants</a></li>
                            
                            </ul>
                        </div>
                    
                
                    
                        <div class="partner quartz">
                            <a href="http://www.qz.com/"><h3>Quartz</h3></a>
                            <ul>
                            
                                <li><a href="http://qz.com/320563/what-back-to-the-future-ii-got-right-about-tech-in-2015/">What Back to the Future II got right about tech in 2015</a></li>
                            
                                <li><a href="http://qz.com/320541/here-are-the-popular-air-routes-that-will-be-more-affordable-this-year/">Here are the popular routes that will be cheaper to fly this year</a></li>
                            
                                <li><a href="http://qz.com/320620/the-seven-most-important-economic-charts-of-the-week-2/">The seven most important economic charts of the week</a></li>
                            
                            </ul>
                        </div>
                    
                    </div>
                    
                
                    
                    <div class="partner-row">
                    
                        <div class="partner the-atlantic-wire">
                            <a href="http://www.thewire.com/"><h3>The Atlantic Wire</h3></a>
                            <ul>
                            
                                <li><a href="http://www.theatlantic.com/international/archive/2015/01/why-would-anybody-adopt-the-euro-in-2015/384183/">Why Would Anybody Adopt the Euro in 2015?</a></li>
                            
                                <li><a href="http://www.theatlantic.com/entertainment/archive/2015/01/in-partial-defense-of-lee-greenwoods-grammatically-challenged-god-bless-the-usa/384178/">In Partial Defense of Lee Greenwood's Grammatically Challenged 'God Bless the U.S.A.'</a></li>
                            
                                <li><a href="http://www.theatlantic.com/international/archive/2015/01/human-traffickers-are-abandoning-boats-full-of-migrants/384177/">Human Traffickers Are Abandoning Boats Full of Migrants</a></li>
                            
                            </ul>
                        </div>
                    
                
                    
                        <div class="partner national-journal">
                            <a href="http://www.nationaljournal.com/"><h3>National Journal</h3></a>
                            <ul>
                            
                                <li><a href="http://www.nationaljournal.com/congress/how-hopes-for-an-immigration-deal-fell-apart-20150102">How Hopes for an Immigration Deal Fell Apart</a></li>
                            
                                <li><a href="http://www.nationaljournal.com/politics/the-seven-senate-races-to-watch-in-2016-20150101">The Seven Senate Races To Watch In 2016</a></li>
                            
                                <li><a href="http://www.nationaljournal.com/pictures-video/the-best-images-of-2014-20141231">The Best Images of 2014</a></li>
                            
                            </ul>
                        </div>
                    
                    </div>
                    
                
                
            </div>

        </section>
    </div>
    <div id="copyright">
        Copyright 2015  The Atlantic Monthly Group. CDN powered by Edgecast
        Networks. Insights powered by Parsely.
    </div>
</footer>


        <!-- Footer Javascript -->
        <script type="text/javascript" src="http://cdn.citylab.com/static/CACHE/js/462be8619acc.js"></script>

        <script type="text/javascript" src="http://cdn.citylab.com/static/CACHE/js/67d5ec89564a.js"></script>

        

<!-- Interstitial -->

    


<!-- BEGIN: Welcome Screens -->
<div id="lightbox-welcome" class="welcome-lightbox">
    <div class="welcome-lightbox-bg"></div>
    <div class="welcome-lightbox-head">
        <figure class="welcome-lightbox-logo">CityLab</figure>
        <div class="welcome-lightbox-right">
            <div class="welcome-lightbox-continue">Continue (<span class="welcome-lightbox-count"></span>) &ensp; <span class="icon-right-arrow"></span></div>
        </div>
    </div>
    <section class="welcome-lightbox-body">
        <div class="welcome-lightbox-copy">Advertisement</div>
        <div class="welcome-lightbox-ad">
            <div class="ad-container" id="ad-welcome" data-ad-starts-hidden="true">
                

            </div>
        </div>
    </section>
</div>


<script type="text/javascript">
    Atlantic.Ad.sizeListener("welcome", function(pos, callback){
        if (callback === false) {
            return false;
        }
        var $lightbox = $('#lightbox-welcome');
        $lightbox.addClass("active format-" + callback.join("x"));
        if (typeof window.welcomeScreen === 'undefined') {
            window.welcomeScreen = new Atlantic.WelcomeScreen();
        }
        window.welcomeScreen.show();
    });
</script>
<!-- End welcome screen -->



<script type="text/javascript">
window.Atlantic = window.Atlantic || {};
Atlantic.Ad = Atlantic.Ad || {};

Atlantic.Ad.manager = new Atlantic.Ad.Manager({
    defs: {
  "ad-logo": {
    "properties": {
      "pos": "logo"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        88, 
        31
      ], 
      [
        100, 
        55
      ], 
      [
        120, 
        60
      ]
    ]
  }, 
  "ad-topleader": {
    "properties": {
      "pos": "topleader"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        320, 
        50
      ], 
      [
        728, 
        90
      ], 
      [
        970, 
        66
      ], 
      [
        970, 
        250
      ]
    ]
  }, 
  "ad-boxtop": {
    "properties": {
      "pos": "boxtop"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        300, 
        250
      ], 
      [
        300, 
        600
      ]
    ]
  }, 
  "ad-bottomleader": {
    "properties": {
      "pos": "bottomleader"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        728, 
        90
      ]
    ]
  }, 
  "ad-welcome": {
    "properties": {
      "pos": "welcome"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        300, 
        250
      ], 
      [
        300, 
        600
      ], 
      [
        640, 
        480
      ], 
      [
        768, 
        1024
      ], 
      [
        1024, 
        768
      ]
    ]
  }, 
  "ad-boxright": {
    "properties": {
      "pos": "boxright"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        300, 
        250
      ]
    ]
  }, 
  "ad-boxcontent": {
    "properties": {
      "pos": "boxcontent"
    }, 
    "zone": "/4624/cities/channel_weather", 
    "sizes": [
      [
        300, 
        250
      ]
    ]
  }
},
    globals: {
  "src": "article", 
  "zone": "/4624/cities/channel_weather"
},
    filter: function() {
        this.filterByVisibility()
            .filterSizesByFit()
            .checkAdTest('citiestest');

        // Remove tall ad sizes from boxtop when in tablet or mobile width
        if ($(window).width() < 960 && this.defs['ad-boxtop'] !== undefined) {
            var boxtop = this.defs['ad-boxtop'];
            boxtop.sizes = $.grep(boxtop.sizes, function (size) {
                return (size[1] <= 250);
            });
        }
        
    },
    listeners: {
        // Hide "Presented By" if the logo isn't logo sized
        "logo": function($unit, size) {
            var $parent = $unit.parent();
            if (size) {
                $parent.show();
            }

            if (size[0] == 100 || size[1] == 55) {
                $('.sponsor-text').hide();
            }
        },
        "topleader": function($unit, size) {
            $.waypoints("refresh");
        }
    }
});

function afterFinished_1406() {
    window.Atlantic = window.Atlantic || {};
    Atlantic.Ad = Atlantic.Ad || {};
    Atlantic.Ad.p39_categories = p39_KVP_Short('','').split('=').slice(1);
    Atlantic.Ad.manager.loadGoogle();
    Atlantic.Ad.manager.display();
}

</script>
<script id="peer39ScriptLoader" src="//stags.peer39.net/1406/trg_1406.js"></script>


        <!-- Footer analytics. -->
        
        
<!-- chartbeat -->
<script type="text/javascript">
//<![CDATA[
var _sf_async_config={uid: 17396, domain:"www.citylab.com"};

_sf_async_config.path = "/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/";
_sf_async_config.title = "A Climate Model of White Christmases—Through 2100";
_sf_async_config.sections = "weather";
_sf_async_config.authors = "John Metcalfe";


(function(){
  function loadChartbeat() {
    window._sf_endpt=(new Date()).getTime();
    var e = document.createElement('script');
    e.setAttribute('language', 'javascript');
    e.setAttribute('type', 'text/javascript');
    e.setAttribute('src',
       (("https:" == document.location.protocol) ? "https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/" : "http://static.chartbeat.com/") +
       "js/chartbeat.js");
    document.body.appendChild(e);
  }
  var oldonload = window.onload;
  window.onload = (typeof window.onload != 'function') ?
     loadChartbeat : function() { oldonload(); loadChartbeat(); };
})();
//]]>
</script>

        <!-- Begin taboola Tag -->
<script>
    window._newsroom = window._newsroom || [];
    if (window.Atlantic && Atlantic.page_info && Atlantic.page_info.view == 'homepage') {
        _newsroom.push({pageTemplate: 'home'});
        _newsroom.push({pageDashboard: 'home'});
        _newsroom.push('auditClicks');
        _newsroom.push('trackPage');
    }
    !function (e, f, u) {
        e.async = 1;
        e.src = u;
        f.parentNode.insertBefore(e, f);
    }(document.createElement('script'), document.getElementsByTagName('script')[0], 
        '//c2.taboola.com/nr/atlanticmedia-theatlanticcities/newsroom.js');
</script>
<!-- End taboola Tag -->

        <!-- Begin comScore Tag -->
<script type="text/javascript">
//<![CDATA[
  var _comscore = _comscore || [];
  _comscore.push({ c1: "2", c2: "6463921" });
  (function() {
    var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
    s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
    el.parentNode.insertBefore(s, el);
  })();
//]]>
</script>
<noscript>
  <img src="http://b.scorecardresearch.com/p?c1=2&c2=6463921&cv=2.0&cj=1" alt="" />
</noscript>
<!-- End comScore Tag -->
        <!-- START Nielsen Online SiteCensus V6.0 -->
<!-- COPYRIGHT 2012 Nielsen Online -->
<script type="text/javascript">
(function () {
var d = new Image(1, 1);
d.onerror = d.onload = function () {
d.onerror = d.onload = null;
};
d.src = ["//secure-us.imrworldwide.com/cgi-bin/m?ci=us-906344h&cg=0&cc=1&si=", escape(window.location.href), "&rp=", escape(document.referrer), "&ts=compact&rnd=", (new Date()).getTime()].join('');
})();
</script>
<noscript>
<div>
<img src="//secure-us.imrworldwide.com/cgi-bin/m?ci=us-906344h&cg=0&cc=1&ts=noscript" 
width="1" height="1" alt="" />
</div>
</noscript>
<!-- END Nielsen Online SiteCensus V6.0 -->
        <!-- Google Analytics -->
<script type="text/javascript">
//<![CDATA[
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-25706000-1']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
//]]>
</script>
<!-- End Google Analytics -->
        <!-- START Parse.ly Include: Standard -->
<div id="parsely-root" style="display: none">
    <a id="parsely-cfg" data-parsely-site="theatlanticcities.com"
        href="http://parsely.com">Powered by the Parse.ly Publisher Platform (P3).</a>
</div>
<script>
    (function(s, p, d) {
        var h=d.location.protocol, i=p+"-"+s,
        e=d.getElementById(i), r=d.getElementById(p+"-root"),
        u=h==="https:"?"d1z2jf7jlzjs58.cloudfront.net"
        :"static."+p+".com";
        if (e) return;
        e = d.createElement(s); e.id = i; e.async = true;
        e.src = h+"//"+u+"/p.js"; r.appendChild(e);
    })("script", "parsely", document);
</script>
<!-- END Parse.ly Include -->
        
<!-- Simplereach -->
<script>
__reach_config = {
  pid: "516eed884240cfbf3000002c", // The SimpleReach assigned Publisher ID (pid)
  url: "http://www.citylab.com/weather/2014/11/a-climate-model-of-white-christmasesthrough-2100/383143/", // The canonical URL of the article. This is not the window.location, this the URL that you would give to a search engine for SEO purposes.
  
  title: "A Climate Model of White Christmases—Through 2100", // The title of the article (remember that they should be escaped, not HTML or URL encoded)
  
  date: "2014-11-25T08:27:49", // Article publish date in UTC or any ISO8601 date
  authors: ["john-metcalfe"], // An array of the article author(s); (remember that they should be escaped, not HTML or URL encoded)
  channels: ["weather"], // An array of the article channel(s); (remember that they should be escaped, not HTML or URL encoded)
  tags: ["maps"] // An array of the article tag(s); (remember that they should be escaped, not HTML or URL encoded)
};

  (function(){
    var s = document.createElement('script');
    s.async = true;
    s.type = 'text/javascript';
    s.src = document.location.protocol + '//d8rk54i4mohrb.cloudfront.net/js/reach.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
  })();
</script>


        

        <!-- Social Networks -->
        <script type="text/javascript">
    /*
    We only use the HTML5 FB script for browsers that have mediaqueries, because
    Facebook will try to activate queries (badly) in IE8/9.

    For legacy browsers, use the iFrame button.
    */
    if (Modernizr.mq("only all") && window.FB === undefined){
        $('body').append('<div id="fb-root" />');
        
        var $script = $('<script src="//connect.facebook.net/en_US/all.js#xfbml=1&appId=149043611894677" />');
        
        $('body').append($script);
    }
</script>

        <!-- Twitter -->
<script> 
    ! function (d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0],
        p = /^http:/.test(d.location) ? 'http' : 'https';
    if (!d.getElementById(id)) {
        js = d.createElement(s);
        js.id = id;
        
        js.src = p + '://platform.twitter.com/widgets.js';
        fjs.parentNode.insertBefore(js, fjs);
    }
}(document, 'script', 'twitter-wjs'); 
</script>
        <!-- Google+ -->
<script type="text/javascript">
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>

        <!-- Linked In -->

<script type="text/javascript">
    // LinkedIn doesn't have a sane ready event.
    // We'll make our own.
    window.onLinkedInLoad = function(){
        $("script[src='//platform.linkedin.com/in.js']").trigger("linkedinReady");
    }
</script>
<script src="//platform.linkedin.com/in.js" type="text/javascript">
 lang: en_US
 onLoad: onLinkedInLoad
</script>


    </body>
<!-- 2015-01-03T06:47:26.554418 -->
<!-- PAGE_COMPLETED -->
</html>
